package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.Member;
import com.itheima.pojo.Order;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 体检预约表（已预约信息）
 */
public interface OrderDao {

    /**
     * 添加预约信息
     * @param order 预约信息
     */
    public void add(Order order);

    /**
     * 查询是否已经预约 ，通过id 日期 和 套餐id
     * @param order 预约的对象
     * @return
     */
    public List<Order> findByCondition(Order order);


    /**
     * 根据日期获取到诊人的信息
     * @param id
     * @return
     */
    public Map findById4Detail(Integer id);


    /**
     * 根据日期获取到诊数
     * @param date
     * @return
     */
    public Integer findOrderCountByDate(String date);

    /**
     * 获取指定日期之后的预约数
     * @param date 日期
     * @return
     */
    public Integer findOrderCountAfterDate(String date);

    /**
     * 获取指定日期的到诊数
     * @param date
     * @return
     */
    public Integer findVisitsCountByDate(String date);

    /**
     * 指定日期之后的到诊数
     * @param date 指定的日期
     * @return
     */
    public Integer findVisitsCountAfterDate(String date);

    /**
     *  查询热门套餐，前3个
     * @return
     */
    public List<Map<String,Object>> findHotSetmeal();

    /**
     * 查询所有的地址
     * @return 所有地址的集合
     */
    List<String> findAddress();


    /**
     * 获取本月的预约数量
     * @param queryString 模糊查询条件
     * @param date   本月的第一天
     * @return
     */
    Page<Map> findPage(@Param("queryString") String queryString,@Param("date") String date);











}
